package com.ruoyi.system.service;

import java.util.Map;

/**
 * 数据统计分析Service接口
 *
 * @author ltr
 * @date 2024-11-19
 */
public interface IStatisticsService
{
    /**
     * 获取系统总体概览统计
     * 包括：学生总数、教师总数、题目总数、申请总数等
     *
     * @return 统计结果
     */
    Map<String, Object> getOverviewStatistics();

    /**
     * 获取题目相关统计
     * 包括：难度分布、标签分布、热度排行、录取率等
     *
     * @return 统计结果
     */
    Map<String, Object> getTopicStatistics();

    /**
     * 获取教师相关统计
     * 包括：指导学生数排行、题目发布数、录取率、职称分布等
     *
     * @return 统计结果
     */
    Map<String, Object> getTeacherStatistics();

    /**
     * 获取学生相关统计
     * 包括：年级分布、专业分布、录取状态、GPA分布等
     *
     * @return 统计结果
     */
    Map<String, Object> getStudentStatistics();

    /**
     * 获取申请相关统计
     * 包括：志愿录取率对比、状态分布、时间趋势等
     *
     * @return 统计结果
     */
    Map<String, Object> getApplicationStatistics();

    /**
     * 获取变更申请统计
     * 包括：通过率、趋势、原因分析等
     *
     * @return 统计结果
     */
    Map<String, Object> getChangeRequestStatistics();

    /**
     * 获取时间趋势分析
     * 包括：近30天申请趋势、录取趋势、题目发布趋势
     *
     * @return 统计结果
     */
    Map<String, Object> getTimeTrendStatistics();

    /**
     * 获取完整的仪表板数据（包含所有统计）
     *
     * @return 完整统计数据
     */
    Map<String, Object> getDashboardData();
}